iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0

今天我們一樣要來練習,今天要來練習的也是在數學中常常用到的。那我們就開始吧。

題目1

讓使用者輸入數字,求此數以內的質數,並打印出來。所謂的質數也就是因數除了自己本身,只有1的數字,也就是那個數只有兩個因數,一個是自己本身,一個是1。
https://ithelp.ithome.com.tw/upload/images/20210919/20140468uqlwIBtvDD.png

a=int(input('輸入數字:'))
for i in range(1,a+1):
    sum=0
    for k in range(1,i+1):
        if i%k==0:
            sum=sum+1
    if sum==2:
        print(i)

首先當然也就是輸入數字,再來就是for迴圈。大家可以看到整個程式有兩個迴圈,但這其實很好理解,最外面的for i in range就是在跑數字a以內的所有數字。那可以看到我在底下有一個sum=0,也就是我先把我們要測試的i 因數數量設為0。那第二個迴圈就是在跑那個數字i到底有幾個因數,當可以整除sum就加一。那下面,假如因數數量為2,我們就可以打印出來,因為就是我們要找的質數。

題目2

讓使用者輸入數字,求此數的質因數。其實意思就是需要是質數,也需要是此數的因數。
https://ithelp.ithome.com.tw/upload/images/20210919/20140468pvpVvWACpJ.png

a=int(input('輸入數字:'))
for i in range(1,a+1):
    sum=0
    for k in range(1,i+1):
        if i%k==0:
            sum=sum+1
    if sum==2 and a%i==0:
        print(i)

那這一題基本上我就建構在上一題上面,大家有發現跟上一題的差別嗎?其實就是最底下的if那邊,上一題是只要i是數字a以內的質數就可以打印,那基本上我也是可以用這個方法,先判斷質數,那再來就是加上條件,就是如果同時也是a的因數的話,就可以打印出來。

補充

基本上這個解法是我自己想的,也還有更快的方法,例如開更號等,但我還是以我的方法為主,畢竟我們要先能靈活應用這些簡單的用法,才能更加進步。


上一篇
Python 練習
下一篇
Python random 套件
系列文
一起來探索Python語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言